/** 转换byte */
export function formatdataforByte(data: any) {
	if (data / 1024 / 1024 / 1024 >= 10) {
		return toDecimalNoKeep(Math.round((data / 1024 / 1024 / 1024) * 1000) / 1000, false) + 'GB';
	}
	if (data / 1024 / 1024 >= 10) {
		return toDecimalNoKeep(Math.round((data / 1024 / 1024) * 1000) / 1000, false) + 'MB';
	}
	if (data / 1024 >= 10) {
		return toDecimalNoKeep(Math.round((data / 1024) * 1000) / 1000, false) + 'KB';
	}
	return parseInt(data) + 'B';
}

/** 转换bps */
export function formatdataforBps(data: any) {
	if (data / 1000 / 1000 / 1000 >= 10) {
		return toDecimalNoKeep(Math.round((data / 1000 / 1000 / 1000) * 1000) / 1000, false) + 'Gbps';
	}
	if (data / 1000 / 1000 >= 10) {
		return toDecimalNoKeep(Math.round((data / 1000 / 1000) * 1000) / 1000, false) + 'Mbps';
	}
	if (data / 1000 >= 10) {
		return toDecimalNoKeep(Math.round((data / 1000) * 1000) / 1000, false) + 'Kbps';
	}
	return toDecimalNoKeep(data, false) + 'bps';
}

/** 转换pps */
export function formatdataforPps(data: any) {
	if (data / 1000 >= 10) {
		return toDecimalNoKeep(Math.round((data / 1000) * 1000) / 1000, false) + 'Kpps';
	}
	return toDecimalNoKeep(data, false) + 'pps';
}
// Bps单位转换
export function BpsConversion(data: any) {
	if (data / 1000 / 1000 / 1000 >= 10) {
		return toDecimalNoKeep(Math.round((data / 1000 / 1000 / 1000) * 1000) / 1000, false) + 'GBps';
	}
	if (data / 1000 / 1000 >= 10) {
		return toDecimalNoKeep(Math.round((data / 1000 / 1000) * 1000) / 1000, false) + 'MBps';
	}
	if (data / 1000 >= 10) {
		return toDecimalNoKeep(Math.round((data / 1000) * 1000) / 1000, false) + 'KBps';
	}
	return data + 'Bps';
}

/**
 * 小数保留两位小数，100保留原样。
 * @param data
 * @returns
 */
function toDecimalNoKeep(data: any, isMs: any) {
	if (data === null || data === undefined) {
		return data;
	}
	if (typeof data === 'string') {
		data = parseFloat(data);
	}
	const str = Math.round(data * 100) / 100;
	if (isMs) {
		return str + 'ms';
	}
	if (data === 100) {
		return data;
	}
	return str;
}
